﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PTTK_HTTT_06.BUS;

namespace PTTK_HTTT_06.GUI
{
    public partial class frm_main : Form
    {
        //Thong tin nhan vien dang nhap
        private NHAN_VIEN nhanVien = null;

        public frm_main()
        {
            InitializeComponent();
        }

        private void frm_main_Load(object sender, EventArgs e)
        {
            //Load man hinh dang nhap len dau tien
            nhanVien = null;
            sttStrip_StatusLabel.Text = "...";
            HienThiManHinhDangNhap();
            //HienThiManHinhLapThucDon();
        }

        #region btn_logOut_Click()
        private void btn_logOut_Click(object sender, EventArgs e)
        {
            sContainer_main.Panel2.Controls.Clear();
            nhanVien = null;
            btn_home.Visible = false;
            btn_logOut.Visible = false;
            lblTenNhanVien.Visible = false;
            sttStrip_StatusLabel.Text = "...";

            HienThiManHinhDangNhap();
        }
        #endregion

        #region btn_home_Click()
        private void btn_home_Click(object sender, EventArgs e)
        {
            sttStrip_StatusLabel.Text = "...";
            HienThiManHinhQuanLy();
        }
        #endregion

        #region Hiển thị màn hình đăng nhập
        private void HienThiManHinhDangNhap(){
            //Khởi tạo control màn hình đăng nhập
            GUI.other.MHDangNhap mhDangNhap = new GUI.other.MHDangNhap();
            mhDangNhap.Dock = DockStyle.Fill;

            mhDangNhap.DangNhapThanhCong += MHDangNhap_DangNhapThanhCong;
            mhDangNhap.DangXuat += MHDangNhap_DangXuat;

            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(mhDangNhap);
        }


        #region Các event của màn hình đăng nhập

        #region đăng nhập thành công
        void MHDangNhap_DangNhapThanhCong(object sender, EventArgs e)
        {
            nhanVien = (sender as NHAN_VIEN);

            lblTenNhanVien.Text = nhanVien.TenNhanVien;
            lblTenNhanVien.Visible = true;
            btn_home.Visible = true;
            btn_logOut.Visible = true;
            
            HienThiManHinhQuanLy();
        }
        #endregion

        #region đăng xuất
        void MHDangNhap_DangXuat(object sender, EventArgs e)
        {
            this.Close();
        }
        #endregion

        #endregion
        #endregion
        
        #region Hien thị màn hình lập thực đơn
        private void HienThiManHinhLapThucDon()
        {
            GUI.LenThucDon.MHLapThucDon mhLapThucDon = new LenThucDon.MHLapThucDon();
            mhLapThucDon.Dock = DockStyle.Fill;
            mhLapThucDon.nhanVien = nhanVien;

            mhLapThucDon.ThongBaoLoi += MHLapThucDon_ThongBaoLoi;

            sttStrip_StatusLabel.Text = "...";
            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(mhLapThucDon);
        }
        #endregion

        #region Hien thị màn hình lập yêu cầu sản phẩm
        private void HienThiManHinhYCSanPham()
        {
            GUI.LapDSYeuCauSanPham.MHLapBangYCSP mhYeuCauSP = new LapDSYeuCauSanPham.MHLapBangYCSP();
            mhYeuCauSP.Dock = DockStyle.Fill;
            mhYeuCauSP.nhanVien = nhanVien;

            mhYeuCauSP.ThongBaoLoi += MHLapThucDon_ThongBaoLoi;

            sttStrip_StatusLabel.Text = "...";
            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(mhYeuCauSP);
        }
        #endregion

        #region Hien thi man hinh dat hang nhap nguyen lieu
        private void HienThiManHinhDatHangNhapNguyenLieu()
        {
            GUI.DatHangNguyenLieu.MHDatHangNguyenLieu _MH = new DatHangNguyenLieu.MHDatHangNguyenLieu();
            _MH.Dock = DockStyle.Fill;                        

            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(_MH);
        }
        #endregion

        #region Hien thị màn hình lập yêu cầu nguyên liệu
        private void HienThiManHinhYCNguyenLieu()
        {
            GUI.LapDSYeuCanNguyenLieu.MHLapBangYCNL mhYeuCauNL = new LapDSYeuCanNguyenLieu.MHLapBangYCNL();
            mhYeuCauNL.Dock = DockStyle.Fill;
            mhYeuCauNL.nhanVien = nhanVien;

            mhYeuCauNL.ThongBaoLoi += MHLapThucDon_ThongBaoLoi;

            sttStrip_StatusLabel.Text = "...";
            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(mhYeuCauNL);
        }

        #endregion

        #region xử lý sự kiện thông báo lỗi
        void MHLapThucDon_ThongBaoLoi(object sender, EventArgs e)
        {
            sttStrip_StatusLabel.Text = (sender as string);
        }
        #endregion

        #region Hien thi man hinh them nguyen lieu
        private void HienThiManHinhThemNguyenLieu()
        {
            other.MHThemNguyenLieu _mhThemNL = new other.MHThemNguyenLieu();
            _mhThemNL.Dock = DockStyle.Fill;

            sttStrip_StatusLabel.Text = "...";
            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(_mhThemNL);
        }
        #endregion

        #region Hien thi man hinh them nha cung cap
        private void HienThiManHinhThemNhaCunCap()
        {
            other.MHThemNhaCungCap _mhThemNL = new other.MHThemNhaCungCap();
            _mhThemNL.Dock = DockStyle.Fill;

            sttStrip_StatusLabel.Text = "...";
            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(_mhThemNL);
        }
        #endregion

        #region Hien thi man hinh them mon an
        private void HienThiManHinhThemMonAn()
        {
            other.MHThemMonAn _mhThemNL = new other.MHThemMonAn();
            _mhThemNL.Dock = DockStyle.Fill;

            sttStrip_StatusLabel.Text = "...";
            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(_mhThemNL);
        }
        #endregion

        #region Hiển thị màn hình quản lý
        private void HienThiManHinhQuanLy()
        {
            //Hiển thị màn hình quản lý
            other.MHQuanLy mhQuanLy = new other.MHQuanLy();
            mhQuanLy.nhanVien = nhanVien;
            mhQuanLy.Dock = DockStyle.Fill;
            mhQuanLy.ClickButton += MHQuanLy_ClickButton;

            sttStrip_StatusLabel.Text = "...";
            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(mhQuanLy);
        }
        #endregion

        #region xử lý sự kiện click button trên màn hình quản lý
        void MHQuanLy_ClickButton(object sender, EventArgs e)
        {
            switch ((sender as string))
            {
                case "btnLapThucDon":
                    HienThiManHinhLapThucDon();
                    break;
                case "btnLapPhieuYCSanPham":
                    HienThiManHinhYCSanPham();
                    break;
                case "btnLapPhieuYCNguyenLieu":
                    HienThiManHinhYCNguyenLieu();
                    break;
                case "btnThemNhaCungCap":
                    HienThiManHinhThemNhaCunCap();
                    break;
                case "btnThemNguyenLieu":
                    HienThiManHinhThemNguyenLieu();
                    break;
                case "btnThemMonAn":
                    HienThiManHinhThemMonAn();
                    break;
                case "btnDatHangNguyenLieu":
                    HienThiManHinhDatHangNhapNguyenLieu();
                    break;
                default:
                    sttStrip_StatusLabel.Text = "Nút này không có hoạt động xử lý!.";
                    break;
            }
        }

        #endregion



    }
}
